package com.haixiaoke.saas.messageCenter.mapper;

import com.haixiaoke.saas.messageCenter.domain.OrdinaryMessage;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 普通消息推送Mapper接口
 *
 * @author panda
 * @date 2024-11-08
 */
public interface OrdinaryMessageMapper {
    /**
     * 查询普通消息推送
     *
     * @param ordinaryMessageId 普通消息推送主键
     * @return 普通消息推送
     */
    OrdinaryMessage selectOrdinaryMessageByOrdinaryMessageId(Long ordinaryMessageId);

    /**
     * 查询普通消息推送列表
     *
     * @param ordinaryMessage 普通消息推送
     * @return 普通消息推送集合
     */
    List<OrdinaryMessage> selectOrdinaryMessageList(OrdinaryMessage ordinaryMessage);

    /**
     * 新增普通消息推送
     *
     * @param ordinaryMessage 普通消息推送
     * @return 结果
     */
    int insertOrdinaryMessage(OrdinaryMessage ordinaryMessage);

    /**
     * 修改普通消息推送
     *
     * @param ordinaryMessage 普通消息推送
     * @return 结果
     */
    int updateOrdinaryMessage(OrdinaryMessage ordinaryMessage);

    /**
     * 删除普通消息推送
     *
     * @param ordinaryMessageId 普通消息推送主键
     * @return 结果
     */
    int deleteOrdinaryMessageByOrdinaryMessageId(Long ordinaryMessageId);

    /**
     * 批量删除普通消息推送
     *
     * @param ordinaryMessageIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteOrdinaryMessageByOrdinaryMessageIds(Long[] ordinaryMessageIds);

    /**
     * 根据租户ID查询普通消息推送
     *
     * @param tenantId 租户ID
     * @return 普通消息推送
     */
    List<OrdinaryMessage> selectOrdinaryMessageByTenantId(String tenantId);

    /**
     * 根据租户ID和推送渠道查询普通消息推送
     *
     * @param tenantId 租户ID
     * @param pushChannel 推送渠道
     * @return 普通消息推送
     */
    List<OrdinaryMessage> selectOrdinaryMessageByTenantIdAndPushChannel(@Param("tenantId") String tenantId,@Param("pushChannel") String pushChannel);

    /**
     * 定时任务查询普通消息推送
     * @return
     */
    List<OrdinaryMessage> selectOrdinaryMessageListByTask();
}
